classdef CeldasClass
     properties (SetObservable)
        wp;
        qp;
        g;
        wz;
        
        tipodecelda;
        %1. Sallen-Key Pasabajos (G>1)
        %2. Sallen-Key Pasabajos Unitaria (G=1)
        %3. Sallen-Key Pasabajos Modificada (G<1)
        %4. Sallen-Key Pasaaltos (G>1)
        %5. Sallen-Key Pasaaltos (G=1)
        
        %6. Rauch Pasabajos
        %7. Rauch Pasaaltos
        %8. Rauch Pasabanda
        
        %9. Fleischer-Tow Universal
        
        %10. Sedra Pasaaltos
        %11. Sedra Pasabajos
        
        
        nres;
        ncap;
        R;
        C;
        sens;
        
    end
    
    properties
    
    end
    
    
    methods
        function self = CeldasClass(tipodecelda,wp,qp,g,wz) 
            
            self.tipodecelda=tipodecelda;
            self.wp=wp;
            self.qp=qp;
            self.g=g;
            self.wz=wz;
            
            
            switch self.tipodecelda
                case 1 % Sallen-Key Pasabajos (G>1)

                    seteados=[10e3,1e3];%R1,R3
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 2 % Sallen-Key Pasabajos Unitaria (G=1)

                    seteados=10e3; %R1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 3 % Sallen-Key Pasabajos Modificada (G<1)
                    seteados=[50e3 10e3 10e3]; %R1 %R3 %R4
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 4 % Sallen-Key Pasaaltos (G>1)
                    seteados=[50e3 10e3]; %R1 %R3
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                       
                case 5 % Sallen-Key Pasaaltos (G=1)
                    seteados=[50e3]; %R1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    self.nres=length(self.R);
                    self.ncap=length(self.C);     
                    
                    
                    
                    
                    
                case 6 % Rauch Pasabajos
                    seteados=[100e3 100e3];%R1,R2
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 7 % Rauch Pasaaltos
                    seteados=[10e3 1e-9];%R1,C1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                case 8 % Rauch PasaBanda
                    seteados=[10e3];%R1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                    
                case 9 % Fleischer-Tow Universal
                    seteados=[10e3 10e3 10e3 10e3 10e3];%R1,R3,R4,R7,R8
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                case 10 % Sedra Pasa Altos
                    seteados=[10e3,10e-9];%R4,C1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
                    
                    
                    
                case 11 % Sedra Pasa Bajos
                    seteados=[1e3,100e-9];%R4,C1
                    [self.R,self.C,self.sens]=self.generocelda(self,seteados);
                    
                    self.nres=length(self.R);
                    self.ncap=length(self.C);
            end
                
                
                
            
            
            
        end
        
        function [R,C,sens]=generocelda(self,varargin,seteados)
            
            switch self.tipodecelda 
                case 1 % Sallen-Key Pasabajos (G>1)
                    [R,C,sens]=celdas_skgmay1(self.wp,self.qp,self.g,self.wz,seteados);
                    
                case 2 % Sallen-Key Pasabajos Unitaria (G=1)
                    [R,C,sens]=celdas_skgigu1(self.wp,self.qp,self.g,self.wz,seteados);
                    
                case 3 % Sallen-Key Pasabajos Modificada (G<1)
                    [R,C,sens]=celdas_skgmen1(self.wp,self.qp,self.g,self.wz,seteados);    
                    
                    
                case 4 % Sallen-Key Pasaaltos (G>1)
                    [R,C,sens]=celdas_skhpgmay1(self.wp,self.qp,self.g,self.wz,seteados);    
                    
                    
                case 5 % Sallen-Key Pasaaltos (G=1)
                    [R,C,sens]=celdas_skhpgigu1(self.wp,self.qp,self.g,self.wz,seteados);    
                    
                    
                    
                case 6 % Rauch Pasabajos
                    [R,C,sens]=celdas_rchlp(self.wp,self.qp,self.g,self.wz,seteados);
                
                case 7 % Rauch Pasaaltos
                    [R,C,sens]=celdas_rchhp(self.wp,self.qp,self.g,self.wz,seteados);
                    
                case 8 % Rauch Pasabanda
                    [R,C,sens]=celdas_rchbp(self.wp,self.qp,self.g,self.wz,seteados);
                    
                    
                case 9 % Fleischer-Tow Universal
                    [R,C,sens]=celdas_flrtw(self.wp,self.qp,self.g,self.wz,seteados);
                                    
                
                
                case 10 % Sedra Pasa Altos
                    [R,C,sens]=celdas_sedrahp(self.wp,self.qp,self.g,self.wz,seteados);
            
                case 11 % Sedra Pasa Altos
                    [R,C,sens]=celdas_sedralp(self.wp,self.qp,self.g,self.wz,seteados);
           
            
            end
            
        end
        
        
        
        
        
        
    end
    

    
end